package com.cb.domain.model.order;


import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

/**
 * Policy Base Java Bean, base class for the model, mapped directly to database table
 * 
 * Avoid changing this file if not necessary, will be overwritten. 
 *
 * 政策
 */
@Entity
@Table(name="policy")
public class Policy implements Serializable {

    protected Long policyId;
	protected String flightCode;
	protected String policyCode;
	protected String dpt;
	protected String arr;
	protected String flightNumLimit;
	protected String flightCondition;
	protected String daycondition;
	protected String cabin;
	protected String discountType;
	protected Double discountValue;
	protected Double yDiscount;
	protected Double returnPoint;
	protected Long returnPrice;
	protected java.util.Date startdateTicket;
	protected java.util.Date enfdateTicket;
	protected java.util.Date startDate;
	protected java.util.Date endDate;
	protected Long beforeValidDay;
	protected String backNote;
	protected String cabinNote;
	protected Long status;
	protected String autoTicket;
	protected String costType;
	protected Long costPrice;
	protected Double proxyPrice;
	protected Double backPrice;
	protected String kType;
	protected Long checkCycleTime;
	protected Long autoCheckOverTime;
	protected Long manualCheckOverTime;
	protected Long downDiscount;
	protected Long allCabin;
	protected String canPay;
	protected String needPnr;
	protected String shared;
	protected String pata;
	protected Long restCabin;
	protected String bridgeOffice;
	protected String isSingleTrip;
	protected Date createTime;
	
	
	@Column(name="createTime")
	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	@Column(name="bridgeOffice")
	public String getBridgeOffice() {
		return bridgeOffice;
	}

	public void setBridgeOffice(String bridgeOffice) {
		this.bridgeOffice = bridgeOffice;
	}

	@Column(name="isSingleTrip")
	public String getIsSingleTrip() {
		return isSingleTrip;
	}

	public void setIsSingleTrip(String isSingleTrip) {
		this.isSingleTrip = isSingleTrip;
	}

	@Column(name="yDiscount")
	public Double getyDiscount() {
		return yDiscount;
	}

	public void setyDiscount(Double yDiscount) {
		this.yDiscount = yDiscount;
	}

	@Column(name="restCabin")
	public Long getRestCabin() {
		return restCabin;
	}

	public void setRestCabin(Long restCabin) {
		this.restCabin = restCabin;
	}

	/**
	 * 政策类型
	 */
	protected Long policyType;

	public Long getPolicyType() {
		return policyType;
	}

	public void setPolicyType(Long policyType) {
		this.policyType = policyType;
	}

	protected java.util.Set<BOrder> bOrders = new java.util.HashSet<BOrder> ();

	@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "policy")
	public java.util.Set<BOrder> getbOrders() {
		return bOrders;
	}

	public void setbOrders(java.util.Set<BOrder> bOrders) {
		this.bOrders = bOrders;
	}

	/**
	 * 	 * @return Long
     * @hibernate.id column="policyId" type="java.lang.Long" generator-class="native"
	 */
	
	@Id     
    @GeneratedValue(generator="Id_Generator")
    @GenericGenerator(name="Id_Generator", strategy="com.cb.common.util.IdGenerator")
	public Long getPolicyId() {
		return this.policyId;
	}
	
	/**
	 * Set the policyId
	 */	
	public void setPolicyId(Long aValue) {
		this.policyId = aValue;
	}	

	/**
	 * 航空公司	 * @return String
	 * @hibernate.property column="flightCode" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "flightCode")	
	public String getFlightCode() {
		return this.flightCode;
	}
	
	/**
	 * Set the flightCode
	 */	
	public void setFlightCode(String aValue) {
		this.flightCode = aValue;
	}	

	/**
	 * 政策代码	 * @return String
	 * @hibernate.property column="policyCode" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "policyCode")	
	public String getPolicyCode() {
		return this.policyCode;
	}
	
	/**
	 * Set the policyCode
	 */	
	public void setPolicyCode(String aValue) {
		this.policyCode = aValue;
	}	

	/**
	 * 起飞城市	 * @return String
	 * @hibernate.property column="dpt" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "dpt")	
	public String getDpt() {
		return this.dpt;
	}
	
	/**
	 * Set the dpt
	 */	
	public void setDpt(String aValue) {
		this.dpt = aValue;
	}	

	/**
	 * 到达城市	 * @return String
	 * @hibernate.property column="arr" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "arr")	
	public String getArr() {
		return this.arr;
	}
	
	/**
	 * Set the arr
	 */	
	public void setArr(String aValue) {
		this.arr = aValue;
	}	

	/**
	 * 航班限制	 * @return String
	 * @hibernate.property column="flightNumLimit" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "flightNumLimit")	
	public String getFlightNumLimit() {
		return this.flightNumLimit;
	}
	
	/**
	 * Set the flightNumLimit
	 */	
	public void setFlightNumLimit(String aValue) {
		this.flightNumLimit = aValue;
	}	

	/**
	 * 航班号	 * @return String
	 * @hibernate.property column="flightCondition" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "flightCondition")	
	public String getFlightCondition() {
		return this.flightCondition;
	}
	
	/**
	 * Set the flightCondition
	 */	
	public void setFlightCondition(String aValue) {
		this.flightCondition = aValue;
	}	

	/**
	 * 班期限制	 * @return String
	 * @hibernate.property column="daycondition" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "daycondition")	
	public String getDaycondition() {
		return this.daycondition;
	}
	
	/**
	 * Set the daycondition
	 */	
	public void setDaycondition(String aValue) {
		this.daycondition = aValue;
	}	

	/**
	 * 适用舱位	 * @return String
	 * @hibernate.property column="cabin" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "cabin")	
	public String getCabin() {
		return this.cabin;
	}
	
	/**
	 * Set the cabin
	 */	
	public void setCabin(String aValue) {
		this.cabin = aValue;
	}	

	/**
	 * 票面价类型	 * @return String
	 * @hibernate.property column="discountType" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "discountType")	
	public String getDiscountType() {
		return this.discountType;
	}
	
	/**
	 * Set the discountType
	 */	
	public void setDiscountType(String aValue) {
		this.discountType = aValue;
	}	

	/**
	 * 票面价/折扣	 * @return Double
	 * @hibernate.property column="discountValue" type="java.lang.Double" length="22" not-null="false" unique="false"
	 */
	
	@Column(name = "discountValue")	
	public Double getDiscountValue() {
		return this.discountValue;
	}
	
	/**
	 * Set the discountValue
	 */	
	public void setDiscountValue(Double aValue) {
		this.discountValue = aValue;
	}	

	/**
	 * 返点	 * @return Long
	 * @hibernate.property column="returnPoint" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "returnPoint")	
	public Double getReturnPoint() {
		return this.returnPoint;
	}
	
	/**
	 * Set the returnPoint
	 */	
	public void setReturnPoint(Double aValue) {
		this.returnPoint = aValue;
	}	

	/**
	 * 留钱	 * @return Long
	 * @hibernate.property column="returnPrice" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "returnPrice")	
	public Long getReturnPrice() {
		return this.returnPrice;
	}
	
	/**
	 * Set the returnPrice
	 */	
	public void setReturnPrice(Long aValue) {
		this.returnPrice = aValue;
	}	

	/**
	 * 销售起始日期	 * @return java.util.Date
	 * @hibernate.property column="startdateTicket" type="java.util.Date" length="10" not-null="false" unique="false"
	 */
	
	@Column(name = "startdateTicket")	
	public java.util.Date getStartdateTicket() {
		return this.startdateTicket;
	}
	
	/**
	 * Set the startdateTicket
	 */	
	public void setStartdateTicket(java.util.Date aValue) {
		this.startdateTicket = aValue;
	}	

	/**
	 * 销售结束日期	 * @return java.util.Date
	 * @hibernate.property column="enfdateTicket" type="java.util.Date" length="10" not-null="false" unique="false"
	 */
	
	@Column(name = "enfdateTicket")	
	public java.util.Date getEnfdateTicket() {
		return this.enfdateTicket;
	}
	
	/**
	 * Set the enfdateTicket
	 */	
	public void setEnfdateTicket(java.util.Date aValue) {
		this.enfdateTicket = aValue;
	}	

	/**
	 * 旅行起始日期	 * @return java.util.Date
	 * @hibernate.property column="startDate" type="java.util.Date" length="10" not-null="false" unique="false"
	 */
	
	@Column(name = "startDate")	
	public java.util.Date getStartDate() {
		return this.startDate;
	}
	
	/**
	 * Set the startDate
	 */	
	public void setStartDate(java.util.Date aValue) {
		this.startDate = aValue;
	}	

	/**
	 * 旅行结束日期	 * @return java.util.Date
	 * @hibernate.property column="endDate" type="java.util.Date" length="10" not-null="false" unique="false"
	 */
	
	@Column(name = "endDate")	
	public java.util.Date getEndDate() {
		return this.endDate;
	}
	
	/**
	 * Set the endDate
	 */	
	public void setEndDate(java.util.Date aValue) {
		this.endDate = aValue;
	}	

	/**
	 * 提前出票时限	 * @return Long
	 * @hibernate.property column="beforeValidDay" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "beforeValidDay")	
	public Long getBeforeValidDay() {
		return this.beforeValidDay;
	}
	
	/**
	 * Set the beforeValidDay
	 */	
	public void setBeforeValidDay(Long aValue) {
		this.beforeValidDay = aValue;
	}	

	/**
	 * 退改签说明	 * @return String
	 * @hibernate.property column="backNote" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "backNote")	
	public String getBackNote() {
		return this.backNote;
	}
	
	/**
	 * Set the backNote
	 */	
	public void setBackNote(String aValue) {
		this.backNote = aValue;
	}	

	/**
	 * 舱位说明	 * @return String
	 * @hibernate.property column="cabinNote" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "cabinNote")	
	public String getCabinNote() {
		return this.cabinNote;
	}
	
	/**
	 * Set the cabinNote
	 */	
	public void setCabinNote(String aValue) {
		this.cabinNote = aValue;
	}	

	/**
	 * 政策状态	 * @return Long
	 * @hibernate.property column="status" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "status")	
	public Long getStatus() {
		return this.status;
	}
	
	/**
	 * Set the status
	 */	
	public void setStatus(Long aValue) {
		this.status = aValue;
	}	

	/**
	 * 是否自动出票	 * @return String
	 * @hibernate.property column="autoTicket" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "autoTicket")	
	public String getAutoTicket() {
		return this.autoTicket;
	}
	
	/**
	 * Set the autoTicket
	 */	
	public void setAutoTicket(String aValue) {
		this.autoTicket = aValue;
	}	

	/**
	 * 成本价类型	 * @return String
	 * @hibernate.property column="costType" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "costType")	
	public String getCostType() {
		return this.costType;
	}
	
	/**
	 * Set the costType
	 */	
	public void setCostType(String aValue) {
		this.costType = aValue;
	}	

	/**
	 * 成本价	 * @return Long
	 * @hibernate.property column="costPrice" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "costPrice")	
	public Long getCostPrice() {
		return this.costPrice;
	}
	
	/**
	 * Set the costPrice
	 */	
	public void setCostPrice(Long aValue) {
		this.costPrice = aValue;
	}	

	/**
	 * 基础代理费率/z值	 * @return Long
	 * @hibernate.property column="proxyPrice" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "proxyPrice")	
	public Double getProxyPrice() {
		return this.proxyPrice;
	}
	
	/**
	 * Set the proxyPrice
	 */	
	public void setProxyPrice(Double aValue) {
		this.proxyPrice = aValue;
	}	

	/**
	 * 后返	 * @return Long
	 * @hibernate.property column="backPrice" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "backPrice")	
	public Double getBackPrice() {
		return this.backPrice;
	}
	
	/**
	 * Set the backPrice
	 */	
	public void setBackPrice(Double aValue) {
		this.backPrice = aValue;
	}	

	/**
	 * K位方式	 * @return String
	 * @hibernate.property column="kType" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "kType")	
	public String getkType() {
		return this.kType;
	}
	
	/**
	 * Set the kType
	 */	
	public void setkType(String aValue) {
		this.kType = aValue;
	}	

	/**
	 * 巡查周期	 * @return Long
	 * @hibernate.property column="checkCycleTime" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "checkCycleTime")	
	public Long getCheckCycleTime() {
		return this.checkCycleTime;
	}
	
	/**
	 * Set the checkCycleTime
	 */	
	public void setCheckCycleTime(Long aValue) {
		this.checkCycleTime = aValue;
	}	

	/**
	 * 巡查总时间	 * @return Long
	 * @hibernate.property column="autoCheckOverTime" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "autoCheckOverTime")	
	public Long getAutoCheckOverTime() {
		return this.autoCheckOverTime;
	}
	
	/**
	 * Set the autoCheckOverTime
	 */	
	public void setAutoCheckOverTime(Long aValue) {
		this.autoCheckOverTime = aValue;
	}	

	/**
	 * 手工k位时限	 * @return Long
	 * @hibernate.property column="manualCheckOverTime" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "manualCheckOverTime")	
	public Long getManualCheckOverTime() {
		return this.manualCheckOverTime;
	}
	
	/**
	 * Set the manualCheckOverTime
	 */	
	public void setManualCheckOverTime(Long aValue) {
		this.manualCheckOverTime = aValue;
	}	

	/**
	 * 向下浮动点数	 * @return Long
	 * @hibernate.property column="downDiscount" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "downDiscount")	
	public Long getDownDiscount() {
		return this.downDiscount;
	}
	
	/**
	 * Set the downDiscount
	 */	
	public void setDownDiscount(Long aValue) {
		this.downDiscount = aValue;
	}	

	/**
	 * 可售座位数	 * @return Long
	 * @hibernate.property column="allCabin" type="java.lang.Long" length="19" not-null="false" unique="false"
	 */
	
	@Column(name = "allCabin")	
	public Long getAllCabin() {
		return this.allCabin;
	}
	
	/**
	 * Set the allCabin
	 */	
	public void setAllCabin(Long aValue) {
		this.allCabin = aValue;
	}	

	/**
	 * 是否允许直接支付	 * @return String
	 * @hibernate.property column="canPay" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "canPay")	
	public String getCanPay() {
		return this.canPay;
	}
	
	/**
	 * Set the canPay
	 */	
	public void setCanPay(String aValue) {
		this.canPay = aValue;
	}	

	/**
	 * 是否生成PNR	 * @return String
	 * @hibernate.property column="needPnr" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "needPnr")	
	public String getNeedPnr() {
		return this.needPnr;
	}
	
	/**
	 * Set the needPnr
	 */	
	public void setNeedPnr(String aValue) {
		this.needPnr = aValue;
	}	

	/**
	 * 共享航班	 * @return String
	 * @hibernate.property column="shared" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "shared")	
	public String getShared() {
		return this.shared;
	}
	
	/**
	 * Set the shared
	 */	
	public void setShared(String aValue) {
		this.shared = aValue;
	}	

	/**
	 * PATA校验	 * @return String
	 * @hibernate.property column="pata" type="java.lang.String" length="50" not-null="false" unique="false"
	 */
	
	@Column(name = "pata")	
	public String getPata() {
		return this.pata;
	}
	
	/**
	 * Set the pata
	 */	
	public void setPata(String aValue) {
		this.pata = aValue;
	}	

}